home *** CD-ROM | disk | FTP | other *** search
/ Plug-In Power Pack for Netscape Communicator / Plug-In Power Pack for Netscape Communicator.iso / plugins / dataviews / dvtools / demos / telecomdemo / sim_util.c < prev    next >
C/C++ Source or Header  |  1997-05-08  |  5KB  |  215 lines

  1. #ifndef lint
  2. static char SccsId[]= "@(#)sim_util.c    V1.6    3/17/95";
  3. #endif
  4.  
  5. /*
  6.  |    File name: sim_util.c
  7.  |========================================================================
  8.  |
  9.  |    Copyright (c) 1990 -- V.I. Corporation
  10.  |
  11.  |========================================================================
  12.  */
  13.  
  14. #include "simulate.h"
  15. #include "tlc_fundecl.h"
  16.  
  17.  
  18. /*
  19.  *   GetNamedView -- look in the view symbol table for the view indicated
  20.  *     by the name.
  21.  */
  22. VIEW_STRUCT *
  23. GetNamedView (name)
  24.      char *name;
  25. {
  26.   VIEW_STRUCT *view_struct;
  27.   SYMNODE symnode;
  28.  
  29.   if (name)
  30.     if ((symnode = VTstkeyfind (SimParams.view_tab, name)) != NULL)
  31.       {
  32.         view_struct = (VIEW_STRUCT *) VTsnvalue (symnode);
  33.         return view_struct;
  34.       }
  35.   return NULL;
  36. }
  37.  
  38.  
  39. /*
  40.  *   GetNamedNode -- look in the node symbol table for the node indicated
  41.  *     by the name.
  42.  */
  43. NODE_STRUCT *
  44. GetNamedNode (name)
  45.      char *name;
  46. {
  47.   NODE_STRUCT *node_struct;
  48.   SYMNODE symnode;
  49.  
  50.   if (name)
  51.     if ((symnode = VTstkeyfind (SimParams.node_tab, name)) != NULL)
  52.       {
  53.         node_struct = (NODE_STRUCT *) VTsnvalue (symnode);
  54.         return node_struct;
  55.       }
  56.   return NULL;
  57. }
  58.  
  59.  
  60. /*
  61.  *   GetNamedPart -- look in the part and switch symbol table for the part
  62.  *     indicated by the name.
  63.  */
  64. PART_STRUCT *
  65. GetNamedPart (name)
  66.      char *name;
  67. {
  68.   PART_STRUCT *part_struct;
  69.   SYMNODE symnode;
  70.  
  71.  
  72.   if (name)
  73.     {
  74.       if ((symnode = VTstkeyfind (SimParams.part_tab, name)) == NULL)
  75.         if ((symnode = VTstkeyfind (SimParams.switch_tab, name)) == NULL)
  76.           return NULL;
  77.       part_struct = (PART_STRUCT *) VTsnvalue (symnode);
  78.       return part_struct;
  79.     }
  80.   return NULL;
  81. }
  82.  
  83.  
  84. /*
  85.  *   GetNewViewStruct -- create and initialize a new view structure.
  86.  */
  87. VIEW_STRUCT *GetNewViewStruct 
  88. V_P_ ((void))
  89. {
  90.   VIEW_STRUCT *view_struct;
  91.  
  92.   view_struct = (VIEW_STRUCT *) S_ALLOC ((LONG) sizeof (VIEW_STRUCT));
  93.   view_struct->view_name = NULL;
  94.   view_struct->view = NULL;
  95.   view_struct->drawport = NULL;
  96.   view_struct->node_list = NULL;
  97.   view_struct->last_node = NULL;
  98.   view_struct->link_list = NULL;
  99.   view_struct->last_link = NULL;
  100.   view_struct->part_list = NULL;
  101.   view_struct->last_part = NULL;
  102.   view_struct->back_ptr = NULL;
  103.   return view_struct;
  104. }
  105.  
  106.  
  107. /*
  108.  *   GetNewNodeStruct -- create and initialize a new node struct.
  109.  */
  110. NODE_STRUCT *GetNewNodeStruct 
  111. V_P_ ((void))
  112. {
  113.   NODE_STRUCT *node_struct;
  114.  
  115.   node_struct = (NODE_STRUCT *) S_ALLOC ((LONG) sizeof (NODE_STRUCT));
  116.   node_struct->node_name = NULL;
  117.   node_struct->status = NORMAL;
  118.   node_struct->switch_list = NULL;
  119.   node_struct->last_switch = NULL;
  120.   node_struct->softerror_count = 0;
  121.   node_struct->critical_count = 0;
  122.   node_struct->failure_count = 0;
  123.   node_struct->next = NULL;
  124.   node_struct->view_ptr = NULL;
  125.   node_struct->back_ptr = NULL;
  126.   return node_struct;
  127. }
  128.  
  129.  
  130. /*
  131.  *   GetNewLinkStruct -- create and initialize a new link struct.
  132.  */
  133. LINK_STRUCT *GetNewLinkStruct 
  134. V_P_ ((void))
  135. {
  136.   LINK_STRUCT *link_struct;
  137.  
  138.   link_struct = (LINK_STRUCT *) S_ALLOC ((LONG) sizeof (LINK_STRUCT));
  139.   link_struct->link_name = NULL;
  140.   link_struct->status = NORMAL;
  141.   link_struct->node1_name = NULL;
  142.   link_struct->node2_name = NULL;
  143.   link_struct->next = NULL;
  144.   link_struct->switch1 = NULL;
  145.   link_struct->switch2 = NULL;
  146.   link_struct->back_ptr = NULL;
  147.   return link_struct;
  148. }
  149.  
  150.  
  151. /*
  152.  *   GetNewPartStruct -- create and initialze a new part structure.
  153.  */
  154. PART_STRUCT *GetNewPartStruct 
  155. V_P_ ((void))
  156. {
  157.   PART_STRUCT *part_struct;
  158.  
  159.   part_struct = (PART_STRUCT *) S_ALLOC ((LONG) sizeof (PART_STRUCT));
  160.   part_struct->part_name = NULL;
  161.   part_struct->status = NORMAL;
  162.   part_struct->error_time = 0;
  163.   part_struct->fix_time = 0;
  164.   part_struct->err_prop = NULL;
  165.   part_struct->node_name = NULL;
  166.   part_struct->next = NULL;
  167.   part_struct->next_switch = NULL;
  168.   part_struct->primary_node = NULL;
  169.   part_struct->back_ptr = NULL;
  170.   return part_struct;
  171. }
  172.  
  173.  
  174. /*
  175.  *   get_token -- get the next token from a string.  The token delimiter
  176.  *     is an asterisk.  Put a null in place of the delimiter and return a
  177.  *     pointer to the beginning of the next token.
  178.  */
  179. void 
  180. get_token (start, result, next)
  181.      char *start;
  182.      char **result;
  183.      char **next;
  184. {
  185.   CHAR *cptr;
  186.  
  187.   if ((cptr = S_STR_INDEX (start, '*')) != NULL)
  188.     {
  189.       *cptr = '\0';
  190.       *next = cptr + 1;
  191.       *result = start;
  192.     }
  193.   else
  194.     {
  195.       *next = NULL;
  196.       *result = start;
  197.     }
  198. }
  199.  
  200.  
  201. /*
  202.  *   SetNumberString -- set the value of the string in a vector text object
  203.  *     to be a representation of a numeric value.
  204.  */
  205. void 
  206. SetNumberString (object, num)
  207.      OBJECT object;
  208.      int num;
  209. {
  210.   CHAR tmp_str[30];
  211.  
  212.   (VOID) sprintf (tmp_str, "%d", num);
  213.   VOvtSetString (object, tmp_str);
  214. }
  215.